package example;

import android.os.AsyncTask;

public class AsyDemo extends AsyncTask<Integer, String, Float>{

	@Override
	protected void onPreExecute() {
		//Nếu bên ngoài gọi myTask.execute(); thì sẽ được "đề pa" bằng sự kiện này.
		//bắt đầu sẽ làm những gì để chuẩn bị ở đây
		super.onPreExecute();
	}
	
	@Override
	protected Float doInBackground(Integer... params) {
		// thuc hien thao tac mat thoi gian
		Integer s = params[0];
		publishProgress("hello"); //cap nhap ra ben ngoai (kieu bien 2)
		return null;
	}

	//Muốn cập nhật thông tin cho bên ngoài thì dùng cái này 
	@Override
	protected void onProgressUpdate(String... values) {
		//Cập nhật cái gì cho biến gì ở đây. (hàm này sẽ được gọi bằng method publishProgress(kiểu_biến_2); trong doInBackgroud)
		super.onProgressUpdate(values);
	}
	
	// Nếu bên ngoài gọi myTask.cancel(); thì sẽ thực hiện sự kiện này
	@Override
	protected void onCancelled() {
		// TODO Auto-generated method stub
		super.onCancelled();
		//Làm gì đó khi bị cancel
	}
	
	@Override
	protected void onPostExecute(Float result) {
		// TODO Auto-generated method stub
		super.onPostExecute(result);
		//Thực hiện xong ta sẽ có giá trị trả về là result và muốn làm gì nữa trên ứng dụng thì để ở đấy.
	}
}
